<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    // 内部函数可以访问外部函数声明的变量, 所产生的词法环境就是闭包
    function show () {
      var x = 2;
      return function () {
        console.log(x);
        x++;
      }
    }
    var fn = show()
    fn()
    fn()
    /**
     * 1 函数嵌套函数
     * 2 内部函数可以访问外部函数声明的参数或者变量
     * 3 外函数部声明的变量长期驻扎在内存中
     *
     * 缺点内存溢出
     */

  </script>
</body>

</html>